package com.example.mobilesafe.receiver;

        import android.app.admin.DevicePolicyManager;
        import android.content.BroadcastReceiver;
        import android.content.Context;
        import android.content.Intent;
        import android.media.MediaPlayer;
        import android.telephony.SmsMessage;

        import com.example.mobilesafe.service.LocationService;
        import com.example.mobilesafe.R;
        import com.example.mobilesafe.constant.ConstantValue;
        import com.example.mobilesafe.utils.SharedPreferencesUtil;

public class SmsReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

        // 0.创建DevicePolicyManager对象
        DevicePolicyManager mDpm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);

        // 1.判断是否开启了防盗保护
        boolean open_security = SharedPreferencesUtil.getBoolean(context, ConstantValue.OPEN_SECURITY, false);
        // 2.获取短信内容
        if (open_security){
            Object[] pdus = (Object[])intent.getExtras().get("pdus");
            // 3.循环遍历短信的过程
            for (Object object : pdus) {
                // 4.获取短信对象
                SmsMessage sms = SmsMessage.createFromPdu((byte[]) object);
                // 5.获取短信对象的基本信息
                String originatingAddress = sms.getOriginatingAddress(); // 短信地址
                String messageBody = sms.getMessageBody(); // 短信内容
                // 6.判断是否包含播放音乐的关键字
                if (messageBody.contains("#*alarm*#")){
                    // 7.播放音乐（准备音乐，MediaPlay，音乐提前准备好放在Raw文件夹中）
                    MediaPlayer mediaPlayer = MediaPlayer.create(context, R.raw.ylzs);
                    mediaPlayer.setLooping(true); // 一直循环音乐
                    mediaPlayer.start();
                }
                // 8.判断是否包含定位的关键字
                if (messageBody.contains("#*location*#")){
                    // 9.开启获取位置的服务
                    context.startService(new Intent(context, LocationService.class));
                }
                // 10.判断是否包含锁屏的关键字
                if (messageBody.contains("#*lockscreen*")){
                    // 锁屏
                    mDpm.lockNow();
                    // 重置密码为空
                    mDpm.resetPassword("密码",0);
                }
                // 11.判断是否包含清除数据的关键字
                if (messageBody.contains("#*wipedate*")){
                    // 清除手机数据
                    mDpm.wipeData(0);
                }
            }
        }
    }
}
